SQL TOP, LIMIT, FETCH FIRST or ROWNUM Clause

वापस लौटने वाले रिकॉर्ड की संख्या निर्दिष्ट करने के लिए SELECT TOP, LIMIT, FETCH FIRST या ROWNUM का उपयोग करना सीखें

एसक्यूएल सेलेक्ट टॉप क्लास

SELECT TOP वर्ग का उपयोग लौटाए जाने वाले रिकॉर्ड की संख्या निर्दिष्ट करने के लिए किया जाता है।

हजारों रिकॉर्ड्स वाली बड़ी तालिकाओं में SELECT TOP क्लास उपयोगी है। बड़ी संख्या में रिकॉर्ड लौटाने से प्रदर्शन प्रभावित हो सकता है।

उदाहरण

ग्राहक तालिका के केवल पहले 3 रिकॉर्ड चुनें:

SELECT TOP 3 * FROM Customers;

💡नोट:

सभी डेटाबेस सिस्टम SELECT TOP क्लास का समर्थन नहीं करते हैं। MySQL सीमित संख्या में रिकॉर्ड चुनने के लिए LIMIT क्लास का समर्थन करता है, जबकि Oracle FETCH FIRST n ROWS ONLY और ROWNUM का उपयोग करता है।

डेटाबेस सिंटैक्स की तुलना

एसक्यूएल सर्वर/एमएस एक्सेस सिंटैक्स

SELECT TOP number|percent column_name(s)
FROM table_name
WHERE condition;

MySQL सिंटेक्स

SELECT column_name(s)
FROM table_name
WHERE condition
LIMIT number;

ओरेकल 12 सिंटैक्स

SELECT column_name(s)
FROM table_name
ORDER BY column_name(s)
FETCH FIRST number ROWS ONLY;

पुराना ओरेकल सिंटैक्स

SELECT column_name(s)
FROM table_name
WHERE ROWNUM <= number;

प्रदर्शन डेटाबेस

नीचे उदाहरणों में प्रयुक्त ग्राहक तालिका से एक चयन दिया गया है:

CustomerID CustomerName ContactName Address City PostalCode Country
1 Alfreds Futterkiste Maria Anders Obere Str. 57 Berlin 12209 Germany
2 Ana Trujillo Emparedados y helados Ana Trujillo Avda. de la Constitución 2222 México D.F. 05021 Mexico
3 Antonio Moreno Taquería Antonio Moreno Mataderos 2312 México D.F. 05023 Mexico
4 Around the Horn Thomas Hardy 120 Hanover Sq. London WA1 1DP UK
5 Berglunds snabbköp Christina Berglund Berguvsvägen 8 Luleå S-958 22 Sweden

उदाहरण सीमित करें

निम्नलिखित SQL कथन MySQL के लिए एक समकक्ष उदाहरण दिखाता है:

उदाहरण

ग्राहक तालिका के पहले 3 रिकॉर्ड चुनें:

SELECT * FROM Customers
LIMIT 3;

पहले उदाहरण प्राप्त करें

निम्नलिखित SQL कथन Oracle के लिए एक समकक्ष उदाहरण दिखाता है:

उदाहरण

ग्राहक तालिका के पहले 3 रिकॉर्ड चुनें:

SELECT * FROM Customers
FETCH FIRST 3 ROWS ONLY;

शीर्ष प्रतिशत के उदाहरण

निम्नलिखित SQL कथन "ग्राहक" तालिका (SQL सर्वर/MS एक्सेस के लिए) से पहले 50% रिकॉर्ड का चयन करता है:

उदाहरण

SELECT TOP 50 PERCENT * FROM Customers;

निम्नलिखित SQL कथन Oracle के लिए एक समकक्ष उदाहरण दिखाता है:

उदाहरण

SELECT * FROM Customers
FETCH FIRST 50 PERCENT ROWS ONLY;

जहां कक्षा उदाहरण

निम्नलिखित SQL कथन "जर्मनी" देश के साथ "ग्राहक" तालिका से पहले तीन रिकॉर्ड का चयन करता है (SQL सर्वर/एमएस एक्सेस के लिए):

उदाहरण

SELECT TOP 3 * FROM Customers
WHERE Country='Germany';

MySQL

SELECT * FROM Customers
WHERE Country='Germany'
LIMIT 3;

Oracle

SELECT * FROM Customers
WHERE Country='Germany'
FETCH FIRST 3 ROWS ONLY;

ORDER BY के उदाहरण

जब आप परिणाम को सॉर्ट करना चाहते हैं तो ORDER BY कीवर्ड जोड़ें और सॉर्ट किए गए परिणाम के पहले 3 रिकॉर्ड लौटाएं।

SQL सर्वर और MS एक्सेस के लिए:

उदाहरण

परिणाम को ग्राहक नाम के अनुसार वर्णानुक्रम में क्रमबद्ध करें और पहले 3 रिकॉर्ड लौटाएँ:

SELECT TOP 3 * FROM Customers
ORDER BY CustomerName DESC;

MySQL

SELECT * FROM Customers
ORDER BY CustomerName DESC
LIMIT 3;

Oracle

SELECT * FROM Customers
ORDER BY CustomerName DESC
FETCH FIRST 3 ROWS ONLY;

डेटाबेस तुलना

SQL Server

SELECT TOP 5 * 
FROM table_name;
  • शीर्ष उपयोग चुनें
  • प्रतिशत समर्थन है
  • एक माइक्रोसॉफ्ट उत्पाद

MySQL

SELECT * FROM table_name
LIMIT 5;
  • LIMIT का प्रयोग किया जाता है
  • ऑफसेट समर्थन उपलब्ध है
  • एक Oracle उत्पाद

Oracle

SELECT * FROM table_name
FETCH FIRST 5 ROWS ONLY;
  • FETCH FIRST का उपयोग करना
  • ROWNUM समर्थित है
  • एक पुराना वाक्यविन्यास है

अभ्यास

उत्तर
SELECT TOP 5 * FROM Customers;

ग्राहक तालिका से पहले 5 रिकॉर्ड चुनें
✓ ठीक है! शीर्ष 5 का चयन करें तालिका से शीर्ष 5 रिकॉर्ड लौटाता है
ग्राहक तालिका से अंतिम 5 रिकॉर्ड चुनें
✗ ग़लत! SELECT TOP हमेशा पहला रिकॉर्ड लौटाता है
ग्राहक नाम के अनुसार क्रमबद्ध 5 रिकॉर्ड चुनें
✗ ग़लत! ORDER BY के बिना, रिकॉर्ड किसी भी क्रम में वापस किया जा सकता है
5 से कम CustomerID वाले सभी रिकॉर्ड चुनें
✗ ग़लत! यह केवल WHERE क्लॉज़ के बिना गिनती को प्रतिबंधित करता है